/*
The surface-physics project: http://code.google.com/p/surface-physics/
Adds real world physics based on the Bullet physics engine, to bases in the Orbiter space
flight simulation software.

Written by Abhijit Nandy
License : Apache License 2.0


This file declares a task queue

*/


#pragma once

#include "Bump_Task.h"


extern char boutput[1000];


/**
 * The Bump_Queue to derive classes meant to control objects attached/part of a BulletBase
 * Objects of this class appear *inside* objects of Bump_BulletBase
 */
template <class T>
class Bump_Queue
{

protected:
	int size, front, rear, capacity;
	T *objArray;

public:

	//Constructor, destructor

	Bump_Queue(){};
	Bump_Queue(int capacity);	//create queue
	virtual ~Bump_Queue();		//destroy queue

	bool isEmpty();
	int makeEmpty();
	int enqueue(T* pt);
	T* dequeue();
	T* peekFront();
	void printQueue();

};
